Memory deduplication improves memory utilization by detecting that two (or more) pages in memory are identical and merging the duplicate pair of pages into a single page. Guest operating systems and applications may create or edit memory pages during execution. Memory pages may reside in various application memory spaces. For example, a first memory page may reside in a first application's memory, while a second memory page may reside in a second application's memory. During execution, duplicate memory pages may exist. If the first and second memory pages have the same content, the first memory page may be considered a duplicate of the second memory page and removed. In such an example, the page table of the first application may be modified to point to the second memory page, and the first application may use the second memory page rather than the first memory page, thus improving the utilization of memory.